﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataLayer.dbml;
using System.Data.Linq.SqlClient;

namespace DataLayer.Controller
{
    /// <summary>
    /// Clase responsable del manejo de los proyectos
    /// </summary>
    public class ProjectController : GenericController<PROYECTO, DataClassesDataContext>
    {
        /// <summary>
        /// Retorna listado de proyectos asociados a un cliente final
        /// </summary>
        /// <param name="idClienteFinal">Id del cliente final</param>
        /// <param name="name">Nombre sobre el cual se va a buscar</param>
        /// <returns></returns>
        public static List<PROYECTO> GetAllByFinalClient(string idClienteFinal, string name, string idCuenta)
        {
            return (from cf in DataContext.CLIENTE_FINAL
	                join ccf in DataContext.CUENTA_CLIENTEFINAL on cf.ID_CLIENTEFINALSDFC.Substring(0,15) equals ccf.ID_CLIENTEFINALSDFC
	                join pj in DataContext.PROYECTO on ccf.ID_CUENTASDFC_ID_CLIENTEFINALSDFC equals pj.ID_CUENTASDFC_ID_CLIENTEFINALSDFC
                    where cf.ID_CLIENTEFINALSDFC == idClienteFinal && (name == string.Empty ? true : SqlMethods.Like(pj.NOMBRE_PROYECTO, "%" + name + "%"))
                    && ccf.ID_CUENTASFDC == idCuenta.Substring(0,15)
                    select pj).ToList<PROYECTO>();
        }
        

    }
}
